package tp.pr5.mv.instructions;

import tp.pr5.mv.Instruction;



public abstract class OneParamInstructions extends Instruction {
	
	/* Clase que implementará las instrucciones que tienen un parámetro intrínseco.  */
	
	public Instruction parse ( String mnemo, String param ) {    // Parseador especial para las instruciones que tienen un parámetro.
		
		if ( param.equals( "" ) )  
			return null;
		
		if ( !mnemo.equals( op.toString() ) )
			return null;
		
		int num  = Integer.parseInt(param);      // Pasamos el parámetro de string a entero.
		
		return create ( num );      // No podemos devolver this a causa del parámetro, así que hacemos un método create que crea la instrucción con su parámetro. 
	}
	
	public abstract Instruction create ( int par );
	
	
	public String toString() { // M�todo que imprime por pantalla una instrucci�n (por defecto sin par�metros)
		
	    return getOpcode().toString() + " " + getParam(); 
	}
	
	public int getParam() {      // Get del parámetro de la instrucción.
		return n;
	}
	
	protected int n;             // Parámetro de las instrucciones con UN parámetro. 

}
